package com.redepronik.negosys.invfac.entity;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * The persistent class for the tipodocumento database table.
 * 
 */
@Entity
@Table(schema = "invfac", name = "tipodocumento")
@NamedQuery(name = "Tipodocumento.findAll", query = "SELECT t FROM Tipodocumento t")
public class Tipodocumento implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(allocationSize = 1, name = "TIPODOCUMENTO_TIPODOCUMENTOID_GENERATOR", sequenceName = "INVFAC.TIPODOCUMENTO_TIPODOCUMENTOID_SEQ")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TIPODOCUMENTO_TIPODOCUMENTOID_GENERATOR")
	@Column(unique = true, nullable = false)
	private Integer tipodocumentoid;

	@Column(nullable = false, length = 3)
	private String abreviatura;

	@Column(nullable = false)
	private Boolean activo;

	@Column(nullable = false, length = 25)
	private String nombre;

	@Column(nullable = false)
	private Boolean pordefecto;

	// bi-directional many-to-one association to Egreso
	@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, mappedBy = "tipodocumento")
	private List<Egreso> egresos;

	// bi-directional many-to-one association to Ingreso
	@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, mappedBy = "tipodocumento")
	private List<Ingreso> ingresos;

	// bi-directional many-to-one association to Traspaso
	@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, mappedBy = "tipodocumento")
	private List<Traspaso> traspasos;

	public Tipodocumento() {
	}

	public Egreso addEgreso(Egreso egreso) {
		getEgresos().add(egreso);
		egreso.setTipodocumento(this);

		return egreso;
	}

	public Ingreso addIngreso(Ingreso ingreso) {
		getIngresos().add(ingreso);
		ingreso.setTipodocumento(this);

		return ingreso;
	}

	public Traspaso addTraspaso(Traspaso traspaso) {
		getTraspasos().add(traspaso);
		traspaso.setTipodocumento(this);

		return traspaso;
	}

	public String getAbreviatura() {
		return this.abreviatura;
	}

	public Boolean getActivo() {
		return this.activo;
	}

	public List<Egreso> getEgresos() {
		return this.egresos;
	}

	public List<Ingreso> getIngresos() {
		return this.ingresos;
	}

	public String getNombre() {
		return this.nombre;
	}

	public Boolean getPordefecto() {
		return this.pordefecto;
	}

	public Integer getTipodocumentoid() {
		return this.tipodocumentoid;
	}

	public List<Traspaso> getTraspasos() {
		return this.traspasos;
	}

	public Egreso removeEgreso(Egreso egreso) {
		getEgresos().remove(egreso);
		egreso.setTipodocumento(null);

		return egreso;
	}

	public Ingreso removeIngreso(Ingreso ingreso) {
		getIngresos().remove(ingreso);
		ingreso.setTipodocumento(null);

		return ingreso;
	}

	public Traspaso removeTraspaso(Traspaso traspaso) {
		getTraspasos().remove(traspaso);
		traspaso.setTipodocumento(null);

		return traspaso;
	}

	public void setAbreviatura(String abreviatura) {
		this.abreviatura = abreviatura;
	}

	public void setActivo(Boolean activo) {
		this.activo = activo;
	}

	public void setEgresos(List<Egreso> egresos) {
		this.egresos = egresos;
	}

	public void setIngresos(List<Ingreso> ingresos) {
		this.ingresos = ingresos;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public void setPordefecto(Boolean pordefecto) {
		this.pordefecto = pordefecto;
	}

	public void setTipodocumentoid(Integer tipodocumentoid) {
		this.tipodocumentoid = tipodocumentoid;
	}

	public void setTraspasos(List<Traspaso> traspasos) {
		this.traspasos = traspasos;
	}

}